home *** CD-ROM | disk | FTP | other *** search
- # WimpWorks Information File
- # WimpWorks © Jaffa Software 1996-8. All rights reserved.
-
- DEF TASKdetails
- Name GrphPaper
- Purpose To make graph paper
- Author © Victor Markwart
- Licence Freeware
- Version 0.03 (3 Feb 1999)
- Compress True
- Memory 0K
- IconbarSide Right
- IconbarPriority &00000000
- IconbarSprite !grphpaper
- IconbarText
- ENDTASK
-
- DEF WEMinclude
- DrawWEM
- Starter Pack
- ENDWEM
-
- DEF MENUiconMenu%
- GrphPaper
- Info
- S(infoWindow%)
-
- Help
-
- PROCopen_help
- Quit
-
- CLOSEDOWN
- ENDMENU
-
- DEF SUBR_PROCiconclick
- Event 3
- Every -1
- DEF PROCiconclick(button%)
- CASE button% OF
- WHEN 4:
- PROCmouse(mx%, my%, mb%, window, icon)
- MOVEWINDOW(graphpaper1, mx%-300, my%+600)
- OPENWINDOW(graphpaper1)
- WHEN 1:
- IF created=TRUE THEN OPENWINDOW(display)
- ENDCASE
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCwindow_klik
- Event 12
- Every -1
- DEF PROCwindow_klik(window%, icon%, button%)
- LOCAL a$
- CASE window% OF
- WHEN graphpaper1
- a$=READICON(window%, xmaj_no_icn)
- IF a$="" THEN
- a$="28"
- ENDIF
- xmaj_div%=VAL(a$)
-
- a$=READICON(window%, xmin_no_icn)
- IF a$="" THEN
- a$="5"
- ENDIF
- xmin_div%=VAL(a$)
-
- a$=READICON(window%, ymaj_no_icn)
- IF a$="" THEN
- a$="20"
- ENDIF
- ymaj_div%=VAL(a$)
-
- a$=READICON(window%, ymin_no_icn)
- IF a$="" THEN
- a$="5"
- ENDIF
- ymin_div%=VAL(a$)
-
- CASE icon% OF
- WHEN 21:
- SETICON(window%, 7, "x-axis")
- SETICON(window%, 8, "y-axis")
- HIDEICON(window%, 23, 0)
- HIDEICON(window%, 24, 0)
- HIDEICON(window%, 25, 0)
- HIDEICON(window%, 26, 0)
- WHEN 22:
- SETICON(window%, 7, "radial")
- SETICON(window%, 8, "orbital")
- HIDEICON(window%, 23, 1)
- HIDEICON(window%, 24, 1)
- HIDEICON(window%, 25, 1)
- HIDEICON(window%, 26, 1)
- WHEN xmaj_up_icn:
- xmaj_div%+=1
- IF xmaj_div%>99 THEN xmaj_div%=99
- SETICON(window%, xmaj_no_icn, STR$(xmaj_div%))
- WHEN xmaj_down_icn:
- xmaj_div%-=1
- IF xmaj_div%<1 THEN xmaj_div%=1
- SETICON(window%, xmaj_no_icn, STR$(xmaj_div%))
-
- WHEN xmin_up_icn:
- xmin_div%+=1
- IF xmin_div%>10 THEN xmin_div%=10
- SETICON(window%, xmin_no_icn, STR$(xmin_div%))
- WHEN xmin_down_icn:
- xmin_div%-=1
- IF xmin_div%<1 THEN xmin_div%=1
- SETICON(window%, xmin_no_icn, STR$(xmin_div%))
-
- WHEN ymaj_up_icn:
- ymaj_div%+=1
- IF ymaj_div%>99 THEN ymaj_div%=99
- SETICON(window%, ymaj_no_icn, STR$(ymaj_div%))
- WHEN ymaj_down_icn:
- ymaj_div%-=1
- IF ymaj_div%<1 THEN ymaj_div%=1
- SETICON(window%, ymaj_no_icn, STR$(ymaj_div%))
-
- WHEN ymin_up_icn:
- ymin_div%+=1
- IF ymin_div%>10 THEN ymin_div%=10
- SETICON(window%, ymin_no_icn, STR$(ymin_div%))
- WHEN ymin_down_icn:
- ymin_div%-=1
- IF ymin_div%<1 THEN ymin_div%=1
- SETICON(window%, ymin_no_icn, STR$(ymin_div%))
-
- WHEN icn_cancel:
- CLOSEWINDOW(graphpaper1)
- WHEN icn_create:
- style%=GROUPSTATE(graphpaper1, 1) - 21
- xmaj_scale%=GROUPSTATE(graphpaper1, 2) - 23
- xmin_scale%=GROUPSTATE(graphpaper1, 3) - 25
- ymaj_scale%=GROUPSTATE(graphpaper1, 4) - 27
- ymin_scale%=GROUPSTATE(graphpaper1, 5) - 29
-
- xmaj_col%=GROUPSTATE(graphpaper1, 6) - 42
- xmin_col%=GROUPSTATE(graphpaper1, 7) - 58
- ymaj_col%=GROUPSTATE(graphpaper1, 8) - 74
- ymin_col%=GROUPSTATE(graphpaper1, 9) - 90
- OPENWINDOW(display)
- CASE button% OF
- WHEN 4:
- CLOSEWINDOW(graphpaper1)
- WHEN 1:
- OPENWINDOW(graphpaper1)
- ENDCASE
- PROCGraphPaper
-
- ENDCASE
-
- WHEN display
- CASE button% OF
- WHEN 1:
- OPENWINDOW(graphpaper1)
- WHEN 2:
- a$=STR$(xmaj_div%)+"x"+STR$(ymaj_div%)
-
- SETSAVE("Graph"+a$, "file_aff")
- OPENSAVE
- WHEN 4:
- CLOSEWINDOW(display)
- ENDCASE
- ENDCASE
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCmouse
- Event -1
- Every -1
- DEF PROCmouse(RETURN mx%, RETURN my%, RETURN mb%, RETURN window, RETURN icon)
- SYS "Wimp_GetPointerInfo",,workspace%
- mx%= workspace%!0
- my%= workspace%!4
- mb%= workspace%!8
- window= workspace%!12
- icon= workspace%!16
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCstart_up
- Event 0
- Every -1
- DEF PROCstart_up
- DIM workspace% 20
- DIM colour%(17)
- DIM scale%(2)
-
- created=FALSE
-
- scale%(0)=46080
- scale%(1)=18142
-
- xmaj_no_icn=31
- xmaj_down_icn=32
- xmaj_up_icn=33
-
- xmin_no_icn=34
- xmin_down_icn=35
- xmin_up_icn=36
-
- ymaj_no_icn=37
- ymaj_down_icn=38
- ymaj_up_icn=39
-
- ymin_no_icn=40
- ymin_down_icn=41
- ymin_up_icn=42
-
- icn_cancel=107
- icn_create=108
-
- style%=0
- xmaj_scale%=1
- xmin_scale%=0
- ymaj_scale%=1
- ymin_scale%=0
-
- xmaj_div%=20
- xmin_div%=5
- ymaj_div%=28
- ymin_div%=5
-
- xmaj_sel%=51
- xmin_sel%=74
- ymaj_sel%=83
- ymin_sel%=106
-
- colour%(1)=&ffffff00
- colour%(2)=&d0d0d000
- colour%(3)=&b0b0b000
- colour%(4)=&90909000
- colour%(5)=&70707000
- colour%(6)=&50505000
- colour%(7)=&30303000
- colour%(8)=&00000000
- colour%(9)=&90400000
- colour%(10)=&00e0e000
- colour%(11)=&00c00000
- colour%(12)=&0000d000
- colour%(13)=&b0e0e000
- colour%(14)=&00805000
- colour%(15)=&00b0ff00
- colour%(16)=&ffb00000
-
- SETSTATE(graphpaper1,xmaj_sel%,TRUE)
- SETSTATE(graphpaper1,xmin_sel%,TRUE)
- SETSTATE(graphpaper1,ymaj_sel%,TRUE)
- SETSTATE(graphpaper1,ymin_sel%,TRUE)
-
- xmaj_col%=colour%(xmaj_sel% - 42)
- xmin_col%=colour%(xmin_sel% - 58)
- ymaj_col%=colour%(ymaj_sel% - 74)
- ymin_col%=colour%(ymin_sel% - 90)
- REM Radio buttons
- SETSTATE(graphpaper1, 21, TRUE)
- SETSTATE(graphpaper1, 24, TRUE)
- SETSTATE(graphpaper1, 25, TRUE)
- SETSTATE(graphpaper1, 28, TRUE)
- SETSTATE(graphpaper1, 29, TRUE)
- REM Colours
- SETICON(graphpaper1, 31, STR$(xmaj_div%))
- SETICON(graphpaper1, 34, STR$(xmin_div%))
- SETICON(graphpaper1, 37, STR$(ymaj_div%))
- SETICON(graphpaper1, 40, STR$(ymin_div%))
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCGraphPaper
- Event -1
- Every -1
- DEF PROCGraphPaper
- CLWIN(display)
- created=TRUE
- font_handle%=0
-
- IF style%=0 THEN
- xmax%=xmaj_div% * scale%(xmaj_scale%)
- ymax%=ymaj_div% * scale%(ymaj_scale%)
- ELSE
- xmax%=ymaj_div% * scale%(ymaj_scale%) * 2
- ymax%=xmax%
- xorigin%=ymaj_div% * scale%(ymaj_scale%)
- yorigin%=xorigin%
- ENDIF
-
- HOURON
- DRAW_INIT(1)
- DRAW_FONT("Homerton.Medium", font_handle%)
-
- IF style%=0 THEN
- REM Rectangular
- DRAW_STARTPATH(-1, colour%(xmaj_col%), 0)
- xinc%=scale%(xmaj_scale%)
- DRAW_MOVE(0, 0)
- DRAW_LINE(0, ymax%)
- FOR j=0 TO xmaj_div%
- xstep%=j * xinc%
- DRAW_MOVE(xstep%, 0)
- DRAW_LINE(xstep%, ymax%)
- NEXT
- DRAW_ENDPATH
-
- DRAW_STARTPATH(-1, colour%(xmin_col%), 1)
- xstep2%=xinc%/xmin_div%
- FOR j=0 TO (xmaj_div% - 1)
- xstep%=j * xinc%
- FOR k=1 TO (xmin_div% - 1)
- IF xmin_scale%=0 THEN
- xstep2a%=xstep% + xstep2% * k
- ELSE
- xstep2a%=xstep% + (LOG(1 + k*9/xmin_div%))*xinc%
- ENDIF
- DRAW_MOVE(xstep2a%, 0)
- DRAW_LINE(xstep2a% , ymax%)
- NEXT
- NEXT
- DRAW_ENDPATH
-
- DRAW_STARTPATH(-1, colour%(ymaj_col%), 1)
- yinc%=scale%(ymaj_scale%)
- DRAW_MOVE(0, 0)
- DRAW_LINE(xmax%, 0)
- FOR j=0 TO ymaj_div%
- ystep%=j * yinc%
- DRAW_MOVE(0, ystep%)
- DRAW_LINE(xmax%, ystep%)
- NEXT
- DRAW_ENDPATH
-
- DRAW_STARTPATH(-1, colour%(ymin_col%), 1)
- ystep2%=yinc%/ymin_div%
- FOR j=0 TO (ymaj_div% - 1)
- ystep%=j * yinc%
- FOR k=1 TO (ymin_div% - 1)
- IF ymin_scale%=0 THEN
- ystep2a%=ystep% + ystep2% * k
- ELSE
- ystep2a%=ystep% + LOG(1 + k*9/ymin_div%)*yinc%
- ENDIF
- DRAW_MOVE(0, ystep2a%)
- DRAW_LINE(xmax%, ystep2a%)
- NEXT
- NEXT
- DRAW_ENDPATH
- ELSE
- REM POLAR
- DRAW_STARTPATH(-1, colour%(xmaj_col%), 0)
- inc_angle=2 * PI /xmaj_div%
- FOR j=0 TO xmaj_div%
- angle=j * inc_angle
- x%=COS(angle)*xorigin% + xorigin%
- y%=SIN(angle)*xorigin% + xorigin%
- DRAW_MOVE(xorigin%, yorigin%)
- DRAW_LINE(x%, y%)
- NEXT
- DRAW_ENDPATH
-
- DRAW_STARTPATH(-1, colour%(xmin_col%), 1)
- min_angle=inc_angle / xmin_div%
- FOR j=0 TO (xmaj_div% - 1)
- maj_angle=j * inc_angle
- FOR k=1 TO (xmin_div% - 1)
- angle = maj_angle + k* min_angle
- x%=COS(angle)*xorigin% + xorigin%
- y%=SIN(angle)*xorigin% + xorigin%
- DRAW_MOVE(xorigin%, yorigin%)
- DRAW_LINE(x%, y%)
- NEXT
- NEXT
- DRAW_ENDPATH
-
- DRAW_STARTPATH(-1, colour%(ymaj_col%), 1)
- yinc%=scale%(ymaj_scale%)
- FOR j=0 TO ymaj_div%
- ystep%=j * yinc%
- PROCdraw_circle(xorigin%, yorigin%, ystep%)
- NEXT
- DRAW_ENDPATH
-
- DRAW_STARTPATH(-1, colour%(ymin_col%), 1)
- ystep2%=yinc%/ymin_div%
- FOR j=0 TO (ymaj_div% - 1)
- ystep%=j * yinc%
- FOR k=1 TO (ymin_div% - 1)
- IF ymin_scale%=0 THEN
- ystep2a%=ystep% + ystep2% * k
- ELSE
- ystep2a%=ystep% + LOG(1 + k*9/ymin_div%)*yinc%
- ENDIF
- PROCdraw_circle(xorigin%, yorigin%, ystep2a%)
- NEXT
- NEXT
- DRAW_ENDPATH
- ENDIF
-
- HOUROFF
-
- drawfile%=DRAW_FILE
- drawsize%=DRAW_SIZE
- file$=FNscrap_dir+".GraphPaper"
- DRAW_SAVE(file$)
- DRAW_EXIT
- RELEASE(drawfile%)
- drawfile%=LOADFILE(file$)
- IF drawfile%=-1 THEN WARNING(TOKEN("NoMem"), "GraphPaper")
- SYS "OS_File",17,file$ TO ,,,,drawsize%
- percenty%=1024*256*100/ymax%
- percentx%=1280*256*100/xmax%
- percent%=FNmin(percentx%, percenty%)
- DRAW(display, 0, 0, 100,percent%,drawfile%, drawsize%)
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCsquare
- Event -1
- Every -1
- DEF PROCsquare(minx%, miny%, maxx%, maxy%)
- DRAW_MOVE(minx%, miny%)
- DRAW_LINE(minx%, maxy%)
- DRAW_LINE(maxx%, maxy%)
- DRAW_LINE(maxx%, miny%)
- DRAW_LINE(minx%, miny%)
- ENDPROC
- ENDSUBR
-
- DEF SUBR_FNscrap_dir
- Event -1
- Every -1
- DEF FNscrap_dir
- LOCAL a$
- a$=OSVAR("Wimp$ScrapDir")
- IF a$="" THEN
- MESSAGE("Unable to find 'Wimp$ScrapDir'. Please show the system the !Scrap application", "GraphPaper Error","warning","OK","","","")
- ENDIF
- =a$
- ENDSUBR
-
- DEF SUBR_FNsave_file
- Event 8
- Every -1
- DEF FNsave_file(file$)
- LOCAL a$, b$
- b$=FNscrap_dir
- IF b$<>"" THEN
- a$= "copy " + b$ +".GraphPaper " + file$ + " A~CDFL~V"
- SYS "XOS_CLI", a$
- ENDIF
- =0
- ENDSUBR
-
- DEF SUBR_FNmin
- Event -1
- Every -1
- DEF FNmin(x , y)
- IF x<y THEN =x ELSE =y
-
- ENDSUBR
-
- DEF SUBR_PROCdraw_circle
- Event -1
- Every -1
- DEF PROCdraw_circle(x, y, r)
- LOCAL v
- v = .55 * r
- DRAW_MOVE(x, y + r)
- DRAW_CURVE(x + r, y, x + v, y + r, x + r, y + v)
- DRAW_CURVE(x, y - r, x + r, y - v, x + v, y - r)
- DRAW_CURVE(x - r, y, x - v, y - r, x - r, y - v)
- DRAW_CURVE(x, y + r, x - r, y + v, x - v, y + r)
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCopen_help
- Event -1
- Every -1
- DEF PROCopen_help
- LOCAL a$
- a$="Filer_Run <GrphPaper$Dir>.!Help"
- OSCLI a$
- ENDPROC
- ENDSUBR
-
- DEF SUBR_PROCdraw_ellipse
- Event -1
- Every -1
- DEF PROCdraw_ellipse(x0, y0, x1, y1, x2, y2)
- LOCAL x3, y3, x4, y4
- IF x1 > x2 THEN
- SWAP x1, x2
- SWAP y1, y2
- ENDIF
- x3=2*x0 - x1
- y3=2*y0 - y1
- x4=2*x0 - x2
- y4=2*y0 - y2
- IF y3 > y1 THEN
- SWAP x1, x3
- SWAP y1, y3
- ENDIF
- IF x2 < x4 THEN
- SWAP x2, x4
- SWAP y2, y4
- ENDIF
- WARNING(STR$(x0) + " " +STR$(x1)+" "+STR$(x2)+" "+STR$(x3)+" "+STR$(x4), "Ellipse")
- xrmaj=(x2 - x0)*.55
- xrmin=ABS((x1 - x0)*.55)
- yrmaj=(y1 - y0)*.55
- yrmin=ABS((y2 - y0)*.55)
- DRAW_MOVE(x1, y1)
- IF y2 > y4 THEN
- DRAW_CURVE(x2, y2, x1 + xrmaj, y1 + yrmin, x2 - xrmin, y2 + yrmaj)
- DRAW_CURVE(x3, y3, x2 + xrmin, y2 - yrmaj, x3 + xrmaj, y3 + yrmin)
- DRAW_CURVE(x4, y4, x3 - xrmaj, y3 - yrmin, x4 + xrmin, y4 - yrmaj)
- DRAW_CURVE(x1, y1, x4 - xrmin, y4 + yrmaj, x1 - xrmaj, y1 - yrmin)
- ELSE
- DRAW_CURVE(x2, y2, x1 + xrmaj, y1 - yrmin, x2 - xrmin, y2 - yrmaj)
- DRAW_CURVE(x3, y3, x2 + xrmin, y2 + yrmaj, x3 + xrmaj, y3 - yrmin)
- DRAW_CURVE(x4, y4, x3 - xrmaj, y3 + yrmin, x4 + xrmin, y4 + yrmaj)
- DRAW_CURVE(x1, y1, x4 - xrmin, y4 - yrmaj, x1 - xrmaj, y1 + yrmin)
- ENDIF
- ENDPROC
- ENDSUBR
-
-